The present invention relates to a disk drive control system in which a disk controller intervenes between a disk drive and a host processor system to control data transmission.
Disk drives such as hard disk drives and floppy disk drives are employed as peripheral memory devices of microcomputer systems and personal computer systems. A central processing unit (CPU) in the computer system processes data in word or byte units, whereas data are read from or written into the disk drive in bit units. In order to control data transmission between a host processor system and the disk drive, therefore, a disk controller is used. The data transmission between the host processor system and the disk controller is performed in word or byte units and the data transmission between the disk drive and the disk controller is performed in bit units, as known in the art.
In a computer system with a low power consumption, the disk drive is activated only when data read or data write request in issued. More specifically, when the host processor system encounters a data read or write request to the disk drive, it first issues a disk drive initiation command to the disk controller. In response to this command, the disk controller activates the disk drive. A spindle motor in the disk drive thereby starts to rotate. As is well known in the art, the data read/write operation to the disk drive has to be initiated after the rotation of the spindle motor is stabilized, i.e. after the disk drive is brought into an access-enable state. To this end, the disk drive supplies a ready signal to the disk controller informing the disk controller that the disk drive is in the access-enable state. The active level of the ready signal indicates the access-enable state of the disk drive, whereas the inactive level of the ready signal indicates the access-disable state. The disk controller informs the level of the ready signal to the host processor system each time it receives a disk drive state check command from the host processor system. Accordingly, by repeating the issue of the state check command, the host processor system can detect whether or not the disk drive is brought into the access-enable state.
When the disk drive is detected to be in the access-enable state, the host processor system issues a data read/write command to the disk controller. In response to this command, the disk controller searches a sector on a disk medium, from which data are to be read or into which data are to be written. As is well known in the art, the disk drive further supplies an index pulse signal to the disk controller. This index pulse signal represents a physical starting point of each track on the disk medium. If the disk controller does not find a certain sector before a predetermined number of index pulses are supplied thereto, it stops the data read/write operation and informs the host processor system of error occurrence. On the other hand, when the disk controller finds the certain sector, it starts the data read/write operation on that sector in bit units.
Thus, the operation of the host processor system is focussed on the disk control until the rotation speed of the spindle motor is stabilized to bring the disk drive into the access-enable state. A time period required for stabilizing the rotation speed of the spindle motor is very long compared to the instruction execution time of the host processor system. For this reason, the efficiency of program execution by the host processor system is deteriorated remarkably. The host processor system could issue the data read/write command to the disk controller before the rotation speed of the spindle motor is stabilized, i.e. before the ready signal is changed from the inactive level to the active level. In this case, however, since the data read-out rate from the disk drive is not constant, the disk controller cannot search the certain sector before the predetermined number of index pulses are supplied thereto, and error information is supplied to the host processor system.